<?php
/**
 * Created by PhpStorm.
 * User: wumengmeng <wu_mengmeng@foxmail.com>
 * Date: 2019/4/26 0026
 * Time: 14:35
 */

namespace HiCommon\Service;

use HiCommon\Repository\InsuranceCompanyRepository;
use HiCommon\Repository\InsuranceCompanySeedRepository;

class InsuranceService extends BaseService
{

    /**
     * 所有保险公司
     *
     * @return array
     * @author wumengmeng <wu_mengmeng@foxmail.com>
     */
    public function api_all_company(){
        $arr_option = [
          'with'=>['insurance_seed'],
          'field'=>['id','name','logo','sort'],
          'where'=>['state'=>1]
        ];
        $res = InsuranceCompanyRepository::base_get_all($arr_option)->toarray();
        return  hello_success('成功',$res);
    }

    /*保险公司-添加一个*/
    public function api_add_one($arr_input){
        $arr_input['name'] = str_trim($arr_input['name']);
        $arr_input['logo'] = str_trim($arr_input['logo']);
        $arr_input['sort'] = intval($arr_input['sort']);
        if(strlen($arr_input['name']) <= 0 ){
            return hello_error('请填写保险公司名称');
        }
        if(strlen($arr_input['name']) > 15 ){
            return hello_error('保险公司名称不能超过15字符');
        }
        if(strlen($arr_input['logo']) <= 0 ){
            return hello_error('请上传图片');
        }
        if(strlen($arr_input['logo']) > 100 ){
            return hello_error('图片上传异常');
        }

        $result = InsuranceCompanyRepository::base_add_one($arr_input)->toarray();
        if(empty($result)){
            return hello_error('添加失败');
        }
        else{
            return  hello_success('添加成功');
        }
    }

    /*保险公司-查询一个*/
    public function api_find_one($n_id){
        $n_id = intval($n_id);
        if($n_id <= 0){
            return hello_error('数据id不能为空');
        }
        $result = InsuranceCompanyRepository::base_find_one($n_id);
        if(is_null($result)){
            return hello_error('数据不存在');
        }

        $arr_data = $result->toarray();
        return  hello_success('成功',$arr_data);
    }

    /*保险公司-修改一个*/
    public function api_edit_one($arr_input){
        $arr_input['id'] = intval($arr_input['id']);
        $arr_input['name'] = str_trim($arr_input['name']);
        $arr_input['logo'] = str_trim($arr_input['logo']);
        $arr_input['sort'] = intval($arr_input['sort']);
        if($arr_input['id'] <= 0){
            return hello_error('数据id不能为空');
        }
        if(strlen($arr_input['name']) <= 0 ){
            return hello_error('请填写保险公司名称');
        }
        if(strlen($arr_input['name']) > 15 ){
            return hello_error('保险公司名称不能超过15字符');
        }
        if(strlen($arr_input['logo']) <= 0 ){
            return hello_error('请上传图片');
        }
        if(strlen($arr_input['logo']) > 100 ){
            return hello_error('图片上传异常');
        }

        $result = InsuranceCompanyRepository::base_edit_one($arr_input);
        if($result === false){
            return hello_error('修改失败');
        }
        else{
            return  hello_success('修改成功');
        }
    }

    /*保险公司-删除一个*/
    public function api_delete_one($n_id = 0){
        $n_id = intval($n_id);
        if($n_id <= 0){
            return hello_error('数据id不能为空');
        }

        $arr_data = [
          'id'=>$n_id,
          'state'=>2,
        ];
        $result = InsuranceCompanyRepository::base_edit_one($arr_data);
        if($result === false){
            return hello_error('删除失败');
        }
        else{
            return  hello_success('删除成功');
        }
    }


    /**
     * 保险公司下所有险种
     *
     * @param $n_id
     *
     * @return array
     * @author wumengmeng <wu_mengmeng@foxmail.com>
     */
    public function api_all_seed($n_id){
        $arr_option = [
          'field'=>['id','insurance_company_id','name','sort'],
          'where'=>['insurance_company_id'=>$n_id,'state'=>1]
        ];
        $res = InsuranceCompanySeedRepository::base_get_all($arr_option)->toarray();
        return  hello_success('成功',$res);
    }

    /*保险公司险种-添加一个*/
    public function api_seed_add_one($arr_input){
        $arr_input['name'] = str_trim($arr_input['name']);
        $arr_input['insurance_company_id'] = intval($arr_input['insurance_company_id']);
        $arr_input['sort'] = intval($arr_input['sort']);
        if(strlen($arr_input['name']) <= 0 ){
            return hello_error('请填写险种名称');
        }
        if(strlen($arr_input['name']) > 15 ){
            return hello_error('险种名称不能超过15字符');
        }
        if($arr_input['insurance_company_id'] <= 0){
            return hello_error('请选择保险公司');
        }

        $result = InsuranceCompanySeedRepository::base_add_one($arr_input)->toarray();
        if(empty($result)){
            return hello_error('添加失败');
        }
        else{
            return  hello_success('添加成功');
        }
    }

    /*保险公司险种-查询一个*/
    public function api_seed_find_one($n_id){
        $n_id = intval($n_id);
        if($n_id <= 0){
            return hello_error('数据id不能为空');
        }
        $result = InsuranceCompanySeedRepository::base_find_one($n_id);
        if(is_null($result)){
            return hello_error('数据不存在');
        }

        $arr_data = $result->toarray();
        return  hello_success('成功',$arr_data);
    }

    /*保险公司险种-修改一个*/
    public function api_seed_edit_one($arr_input){
        $arr_input['id'] = intval($arr_input['id']);
        $arr_input['name'] = str_trim($arr_input['name']);
        $arr_input['sort'] = intval($arr_input['sort']);

        if($arr_input['id'] <= 0){
            return hello_error('数据id不能为空');
        }

        if(strlen($arr_input['name']) <= 0 ){
            return hello_error('请填写险种名称');
        }
        if(strlen($arr_input['name']) > 15 ){
            return hello_error('险种名称不能超过15字符');
        }

        $result = InsuranceCompanySeedRepository::base_edit_one($arr_input);
        if($result === false){
            return hello_error('修改失败');
        }
        else{
            return  hello_success('修改成功');
        }
    }

    /*保险公司险种-删除一个*/
    public function api_seed_delete_one($n_id = 0){
        $n_id = intval($n_id);
        if($n_id <= 0){
            return hello_error('数据id不能为空');
        }

        $arr_data = [
          'id'=>$n_id,
          'state'=>2,
        ];
        $result = InsuranceCompanySeedRepository::base_edit_one($arr_data);
        if($result === false){
            return hello_error('删除失败');
        }
        else{
            return  hello_success('删除成功');
        }
    }

}